home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
newsgrp
/
group95c.txt
/
000026_icon-group-sender _Fri Sep 29 13:35:14 1995.msg
< prev
next >
Wrap
Internet Message Format
|
1996-01-03
|
2KB
Received: by cheltenham.cs.arizona.edu; Fri, 29 Sep 1995 16:22:10 MST
Date: Fri, 29 Sep 1995 13:35:14 -0700
From: Gregg Townsend <gmt>
Message-Id: <9509292035.AA16487@hawk.CS.Arizona.EDU>
To: icon-group@cs.arizona.edu, qbchsod@ebcw131.ericsson.se
Subject: Re: Q: icont error message
Errors-To: icon-group-errors@cs.arizona.edu
From: qbchsod@ebcw131.ericsson.se (Soderstrom Hakan)
I took a *working* program from an Icon 8.9 environment and tried to run
it in a 9.0 environment. Now it wouldn't compile; icont complains:
pltodb.icn: Line 85 # :"d_bname": no record having this field is ever created
...
Short answer:
If this was a working program, it probably is using string invocation
at some point and requires an "invocable all" declaration to run under
Icon version 9.0.
If you see this error message in any other situation, just ignore it.
It's so confusing that we're removing it from Icon 9.1.
Long answer:
Version 9 of Icon removes unreferenced procedures at the linking phase.
That makes it feasible to construct and use libraries by linking files
of many procedures: there's no penalty, because the unreferenced
procedures are tossed out instead of occupying space. Run "icont -v3"
to see the list of objects being discarded.
This optimization breaks down in the case of string invocation. If the
only call to procedure foo is via something like
s := "foo"
s()
this doesn't count as a reference; the *procedure* foo is never
referenced in the program, and so is discarded. You need to add
invocable "foo"
to prevent this, or
invocable all
if you don't know exactly what procedures to name.
Now, back to the original question. Suppose that the only procedure that
creates a record of type R is suppressed -- perhaps it was not called due
to oversight or typographical error. All the places that reference fields
of record type R now produce the warning message, which is technically
correct but not at all helpful towards identifying the real problem.
Accordingly, we are removing the link-time warning message from Icon
version 9.1. In the mean time, just ignore it and concentrate on any
other problems. If the reference causes problems during execution, an
error will be genenrated at that time.
Gregg Townsend / Computer Science Dept / Univ of Arizona / Tucson, AZ 85721
+1 520 621 4325 gmt@CS.Arizona.EDU 110 57 16 W / 32 13 45 N / +758m